
<template>


<div id="PieChart">Pie chart</div>
</template>

<script>

export default {

props:{

 fun:{

type:Function,

 },

title:{

type:String,

default:''

 }

 },

data(){ 

return {

width:document.body.clientWidth/5,
height:document.body.clientHeight/5

}

},
watch:{
 width(val){
   // 为了避免频繁触发resize函数导致页面卡顿，使用定时器
    if(!this.timer){
        // 一旦监听到的width值改变，就将其重新赋给data里的width
        this.width = val
        this.timer = true
        let that = this
        that.Chart()
        setTimeout(function(){
            // 打印width变化的值
            // eslint-disable-next-line no-console
            // console.log(that.width)
            that.timer = false
        },400)
    }
 },
 height(val){
  // 为了避免频繁触发resize函数导致页面卡顿，使用定时器
    if(!this.timer){
        // 一旦监听到的width值改变，就将其重新赋给data里的width
        this.height = val
        this.timer = true
        let that = this
        that.Chart()
        setTimeout(function(){
            // 打印height变化的值
            // eslint-disable-next-line no-console
            // console.log(that.height)
            that.timer = false
        },400)
    }
 }
},
components: {

},

computed: {

evenNumbers: function () {

return this.key.filter(function (number) {

return number % 3 === 0

})

}

},

beforeCreate:function (){

// 在实例初始化之后，数据观测 (data observer) 和 event/watcher 事件配置之前被调用。



 },

created:function (){

 // 在实例创建完成后被立即调用。在这一步，实例已完成以下的配置：数据观测 (data observer)，属性和方法的运算，watch/event 事件回调。然而，挂载阶段还没开始，el 属性目前尚不可用。



 },

 beforeMount:function (){

},
mounted(){
      window.onresize=()=>{
     this.width = document.body.clientWidth/5
     this.height = document.body.clientHeight/6
  }
    this.Chart()
},

methods: {

// 在挂载开始之前被调用：相关的 render 函数首次被调用。

Chart(){
    // 基于准备好的dom，初始化echarts实例
// eslint-disable-next-line no-unused-vars
var myChart = this.echarts.init(document.getElementById('PieChart'));
    //    this.autoHeight = myChart.length * 35 + 50; // counst.length为柱状图的条数，即数据长度。35为我给每个柱状图的高度，50为柱状图x轴内容的高度(大概的)。
          myChart.resize({height:this.height,width:this.width});
// 绘制图表
myChart.setOption({
     
    title: {
   
        left: 'center',
        top: 20,
        textStyle: {
            color: '#ffff',
           fontSize: 13

        }
    },

    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b} : {c} ({d}%)'
    },

    visualMap: {
        show: false,
        min: 80,
        max: 600,
        inRange: {
            colorLightness: [0, 1]
        }
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: '90%',
            center: ['50%', '50%'],
            data: [
                {value: 335, name: '直接访问'},
                {value: 310, name: '邮件营销'},
                {value: 274, name: '联盟广告'},
                {value: 235, name: '视频广告'},
                {value: 400, name: '搜索引擎'}
            ].sort(function (a, b) { return a.value - b.value; }),
            roseType: 'radius',
            label: {
                color: 'black',
                                        fontSize: 13

            },
            labelLine: {
                lineStyle: {
                    color: 'black'
                },
                smooth: 0.2,
                length: 10,
                length2: 20
            },
            itemStyle: {
                color: '#c23531',
                shadowBlur: 200,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
            },

            animationType: 'scale',
            animationEasing: 'elasticOut',
            // eslint-disable-next-line no-unused-vars
            animationDelay: function (idx) {
                return Math.random() * 200;
            }
        }
    ]
})
}

}

}

</script>

<style lang="scss" scope>
   #PieChart {
   
       background-color: #fff;
   }
</style>
